package jinyilw.common.database;

import jinyilw.common.OSTools;
public class SqlCommandModel
{
	// 用户名
	private String username;
	// 用户密码
	private String password;
	// 从哪个主机导出数据库，如果没有指定这个值，则默认取localhost
	private String host;
	// 使用的端口号
	private String port;
	// 路径是mysql中 bin 文件 的位置
	private String mysqlPath;
	// 导出数据库名称
	private String exportMysqlDataBase;
	// 导入数据库名称
	private String importDataBase;

	/**
	 * 获取导出命令
	 */
	public String getExportCommand(String exportDataTableName,
			String exportPath)
	{
		// 注意哪些地方要空格，哪些不要空格
		// 密码是用的小p，而端口是用的大P。
		String command = "mysqldump -u " + username + " -p"
				+ password// 密码是用的小p，而端口是用的大P。
				+ " -h" + host + " -P" + port
				+ " " + exportMysqlDataBase + " "
				+ exportDataTableName + " -r " + exportPath;
		if (OSTools.isLinux())
		{
			command = mysqlPath + command;
		}
		return command;
	}

	// 得到 导入 数据库的命令
	// 得到 导入数据 的 命令行语句
	public String[] getImportCommand(String importPath)
	{

		// 第一步，获取登录命令语句
		String loginCommand = "mysql -h" + host
				+ " -u " + username + " -p" + password
				+ " -P" + port;
		// 第二步，获取切换数据库到目标数据库的命令语句
		String switchCommand = "use "
				+ importDataBase;
		// 第三步，获取导入的命令语句
		String importCommand = " source " + importPath;
		// 需要返回的命令语句数组

		return new String[]{loginCommand, switchCommand,
				importCommand};
	}
}
